package com.example.demo.service;

import com.example.demo.dto.*;
import com.example.demo.controller.bean.Result;
import com.example.demo.mapper.entity.*;
import com.example.demo.utils.PageBo;
import com.example.demo.utils.PageVo;
import com.example.demo.utils.TreeBo;

import java.util.List;

public interface PointsMallManageService {
    PageVo<Commodity> getCommodityList(PageBo pageBo);

    PageVo<Commodity> searchCommodityList(CommodityRequestDTO request, PageBo pageBo);

   // Result<String> addCommodity(CommodityRequestDTO request);

    Result<String> updateCommodityList(CommodityRequestDTO request);

    Commodity selectCommodityById(int id);

    void placeCommodity(Commodity currentCommdity);


    Result<String> deleteCommodityList(Commodity commodity);

    void batchDeleteCommodityList(List<Commodity> commodityList);

    Commodity getById(int commodityId);

    PageVo<StudentPoints> getStudentPointsList(PageBo pageBo);

    PageVo<StudentPoints> searchStudentPointsList(StudentPointsRequestDTO request, PageBo pageBo);

    Result<String> updatePointsList(StudentPointsRequestDTO request);

    PageVo<ExchangeRecord> getExchangeRecordList(PageBo pageBo);

    PageVo<ExchangeRecord> searchExchangeRecordList(ExchangeRecordRequestDTO request, PageBo pageBo);

    PageVo<Order> getPendingOrderList(PageBo pageBo);

    PageVo<Order> getShipedOrderList(PageBo pageBo);

    PageVo<Order> getCompletedOrderList(PageBo pageBo);

    PageVo<Order> getCanceledOrderList(PageBo pageBo);

    PageVo<Order> searchOrderList(OrderRequestDTO request, PageBo pageBo);

    Result<String> updateOrderList(OrderRequestDTO request);


    List<OrderView> getOrderDataList(int orderId);


    List<OrderTimeLineDTO> getTimeLineList(int orderId);

    Result<String> cancelOrder(Order request);

    Result<String> deleteOrder(int orderId);

    Result<String> shipOrder(Order request);

    Result<String> addCommodity(Commodity curCommodity, String fileName);

    Result<String> updateReceiverInfo(Order request);
}
